웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > python

[Python] 태그만 제거하는 방법, 정규표현식

Last Modified : 2020-08-07 / Created : 2020-07-28
15,113
View Count

Python에서 정규표현식을 사용하여 모든 태그 요소를 제거하는 방법을 알아봅니다.




# Python 정규표현식으로 태그 요소 제거하기

Python에서 태그 요소를 제거하기 위해 몇 가지 방법이 있습니다. 그 중에서 아래는 정규표현식을 사용하여 태그만 제거하는 방법을 알아보겠습니다.

먼저 태그를 제거하는 방법으로 아래와 같이 파이썬 re 모듈sub() 함수에 정규표현식 패턴을 적용할 수 있습니다.

re.sub('regex', '치환문자', 대상 문자열)

위와 같이 sub() 함수에 세 가지 인자 값으로 각각 정규표현식 패턴, 치환할 문자, 대상 문자열을 사용합니다. 다음은 간단한 에제입니다.


! Python 태그 제거 예제보기

아래의 예제는 데이터베이스(MongoDB)에서 불러온 여러 개의 글에서 본문에 해당하는 필드, content의 태그를 모두 제거한 예제입니다. 추가로 글의 길이도 200자로 잘라 저장하였습니다.


- 데이터베이스에서 글 불러오기
- content 필드의 태그를 모두 제거하기
- content의 길이를 200 이내로 줄이기

@ app.py
articles_array = []
import re
for item in articles:
  item['content'] = re.sub('(<([^>]+)>)', '', item['content'])
  item['content'] = item['content'][:200]
  articles_array.append(item)

return dumps(articles_array)

위 예제에서 태그를 제거한 부분만 다시 살펴보겠습니다.
item['content'] = re.sub('(<([^>]+)>)', '', item['content'])

첫 번째 인자로 넘긴 '(<([^>]+)>)' 값이 바로 정규표현식 패턴에 해당하는 부분입니다. 이 코드는 태그로 해당되는 부분을 제거합니다. 즉 다음 인자인 '' 빈 값으로 모두 변경됩니다.

추가로 콘텐츠의 길이를 200자 이내로 변경한 코드가 아래와 같이 존재합니다.
item['content'] = item['content'][:200]

이제 수정된 데이터를 다시 배열에 추가 후 모두 리턴하는 것으로 마치게 됩니다.


! 태그를 제거하는 다른 방법은?


앞에도 얘기한 것처럼 정규표현식을 사용한 태그 제거 이외에 다른 방법도 존재합니다. 그 중에서 많이 사용되는 방법이 바로 BeautifulSoup 패키지 모듈의 get_text()를 사용하는 방법입니다. 이처럼 다른 방법이 가능하다는 점만 참고하시기 바랍니다.

여기까지 파이썬에서 태그를 정규표현식을 사용해 제거하는 방법을 알아봤습니다.
아래의 글도 찾고 계시지 않나요?

    Previous

    [Python] 파이썬 tuple 타입 알아보기

    Previous

    [Python] 문자열 길이 구하기, len